The present invention relates to a ring interface and network flow control system for passing message packets between source and destination pairs in the ring.
Modern computer communications networks, particularly ethernet systems, employ multiple access communications methods to share their communications resources. A multiple-access communications channel is a network system whose communications media are shared among distributed stations (terminals, computers). Different classes of computer communications networks, include wired and wireless local and metropolitan area networks, satellite communications networks, and local area optical communications networks. The various topologies for shared-medium communications networks include star, bus, ring, mesh and broadcast radio, crossbar, trees, hypercubes and hypercycles. These network topologies have been proposed in the past for designing parallel computers and computer communication networks. A given topology or structure has nodes connected by point-to-point links which form a static interconnection network. One such structure is the ring structure shown in FIG. 1. In this structure stations or nodes 11 are connected by point-to-point links in, typically, a closed-loop bus 13. In the physical ring implementation, each station 11 connects to the ring through an active ring interface 15 so that transmissions across the ring pass through and are delayed in the register of the ring interface units 15 they traverse. The architectural features of an interconnection network play a major role in its performance. Some of these desirable features include a small number of ports incident on each node, i.e., a low degree, a smaller average distance for lower network latency, fault-tolerance, scalability and reduced cost of implementation.
A scalable coherent interface (SCI) uses a ring based topology with point-to-point unidirectional links that use a packet based communication protocol for sharing message packets between source-destination nodes. The SCI uses a flow control method to prevent node starvation and reduce the ability of the nodes to unfairly consume ring bandwidth. However, the implementation of this algorithm is not very robust and the method suffers from low utilization.
Accordingly, it is an object of the invention to provide an improved interface architecture with accompanying packet based communication protocol that permits transmission of data from each node of a network under all network conditions.
According to the invention there is provided a ring interface coupled to a current node in a ring network having a plurality of nodes and corresponding ring interface for each of said nodes. The ring interface includes a ring input port operative to conduct upstream message packets from a previous node to the ring interface, a ring output port operative to conduct message packets to a next node of the ring network, and a bypass queue operative to buffer message packets. A receive queue buffers message packets before passing them on to the current node. An address filter is coupled to the ring input port to receive the upstream message packets, read their destination addresses and pass them to the bypass queue if the addresses correspond to another node and pass them to the receive queue if their addresses are that of the current node. A transmit queue buffers message packets from the current node and a bypass-transmit queue arbiter is coupled to outputs of the bypass queue and the transmit queue and is operative to select message packets from one of the bypass queue and the transmit queue in accordance with predetermined selection criterion and transmits the selected message packets to the ring output port.
The output arbiter may give the bypass queue a 100% priority over the transmit queue for selecting and passing message packets on to the ring output port.
The transmit queue may back-pressure the current node to stop injecting new message packets if the transmit queue is full.
The address filter may discard a message packet if an address of a source address of the message packet is the current node.
In another aspect of the invention there is provided a ring network having a ring bus interconnecting a plurality of nodes including a ring interface positioned between each node and the ring bus. The ring interface includes coupled to a current node in a ring network having a plurality of nodes and corresponding ring interface for each of said nodes. The ring interface includes a ring input port operative to conduct upstream message packets from a previous node to the ring interface, a ring output port operative to conduct message packets to a next node of the ring network, and a bypass queue operative to buffer message packets. A receive queue buffers message packets before passing them on to the current node. An address filter is coupled to the ring input port to receive the upstream message packets, read their destination addresses and pass them to the bypass queue if the addresses correspond to another node and pass them to the receive queue if their addresses are that of the current node. A transmit queue buffers message packets from the current node and a bypass-transmit queue arbiter is coupled to outputs of the bypass queue and the transmit queue and is operative to select message packets from one of the bypass queue and the transmit queue in accordance with predetermined selection criterion and transmits the selected message packets to the ring output port.
The ring interface may include a Flow_Control_State_Manipulator coupled to the ring input, the Flow_Control_State_Manipulator being operative to determine a current flow control state of the ring network and to communicate to the bypass-transmit queue arbiter a status of the current flow control state of the ring network.
The message packets may preferably be encoded using 8B/10B code for encoding data and control characters. The data and control characters may be in the form of binary-coded symbols with a delimiter signal being used to distinguish between the data and control characters. The delimiter signal may be a BUSY or IDLE control character which precedes and terminates every message. An odd number of characters may be inserted between every pair of the BUSY or IDLE characters.
A FILL character may be appended to a message before a terminating BUSY or IDLE character in the event there are an even number of characters in the message. An IDLE state on said ring network may be indicated by a repeated sequence of IDLE or BUSY and FILL characters. The FILL characters may include a FILLN character and a FILLP character, the FILLN character being inserted when a running disparity computed over all of characters that have been transmitted previously on a given link joining two nodes at an end of a previous transmission is negative and the FILLP character being inserted when a running disparity computed over all of characters that have been transmitted previously on a given link joining two nodes at an end of a previous transmission is positive. The term xe2x80x9cdisparityxe2x80x9d refers to the number of xe2x80x9c1""sxe2x80x9d and xe2x80x9c0""sxe2x80x9d in the stream of data.